/**

This file is part of MaCI/GIMnet.

MaCI/GIMnet is free software: you can redistribute it and/or modify it 
under the terms of the GNU Lesser General Public License as published 
by the Free Software Foundation, either version 3 of the License, or 
(at your option) any later version.

MaCI/GIMnet is distributed in the hope that it will be useful, but WITHOUT 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public 
License for more details.

You should have received a copy of the GNU Lesser General Public 
License along with GIMnet. (See COPYING.LESSER) If not, see 
<http://www.gnu.org/licenses/>.

**/
/**
 * \file
 * \brief Tools for tcpHub performance testing and monitoring - header.
 * \author Antti Maula <antti.maula@tkk.fi>
 */
#ifndef _TCPHUB_INSTRUMENTATION_H_
#define _TCPHUB_INSTRUMENTATION_H_

#include <stdio.h>

/** Instrumentation info structure.
 *
 */
typedef struct
{
  unsigned int connectionID;       ///< This links ID.

  unsigned int transmittedBytes;   ///< Bytes transmitted over this link
  unsigned int receivedBytes;      ///< For stats. Bytes received over this link
  
  unsigned int transmittedFrames;  ///< Frames sent over link.
  unsigned int receivedFrames;     ///< Frames received over link.
} TInstrumentationEntryStats;

int instrumentationInit(const char *store_file);
void instrumentationEntryStatsInit(TInstrumentationEntryStats *ie, unsigned int connectionID);
void instrumentationEntryStatsStore(TInstrumentationEntryStats *ie);

#endif //_TCPHUB_INSTRUMENTATION_H_
